home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / documents / RFC / rfc1086.txt < prev    next >
Text File  |  1994-08-01  |  19KB  |  507 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                          J. Onions
  8. Request for Comments: 1086                                    Nottingham
  9.                                                                  M. Rose
  10.                                                                      TWG
  11.                                                            December 1988
  12.  
  13.                   ISO-TP0 bridge between TCP and X.25
  14.  
  15.  
  16.  
  17. Status of this Memo
  18.  
  19.    This memo proposes a standard for the Internet community.  Hosts on
  20.    the Internet that choose to implement ISO TP0 transport connectivity
  21.    between TCP and X.25 based hosts are expected to experiment with this
  22.    proposal.  TCP port 146 is reserved for this proposal.  Distribution
  23.    of this memo is unlimited and comments are highly encouraged.
  24.  
  25. Introduction
  26.  
  27.    This memo specifies a protocol that is used to bridge ISO TP0 packets
  28.    between X.25 and TCP networks.  This technique is useful when
  29.    interconnecting a DDN IP internet to an X.25 subnetwork.  This is not
  30.    a "magic bullet" solution to the DDN/ISO interoperability problem.
  31.    Rather, if one is running higher-layer ISO protocols in both networks
  32.    (namely ISO TP0), then a TP0 bridge can be used to achieve
  33.    connectivity.
  34.  
  35.    The protocol itself is fairly simple as the method of operation for
  36.    running TP0 over the TCP and X.25 protocols have previously been
  37.    defined.  A bridge offering ISO-TP0 gateway services simply applies
  38.    both methods as appropriate.  The protocol works by TP0/TCP hosts
  39.    "registering" an X.25 subaddress (and corresponding TCP port/IP
  40.    address) with the bridge.  TP0/X.25 hosts use the standard method or
  41.    establishing, maintaining, and releasing connections.  When a TCP
  42.    connection and simply shuffles TP0 packets between the two.  When a
  43.    TP0/TCP host initiates a connection, it establishes a TCP connection
  44.    to the bridge using port number 146 and communicates the desired X.25
  45.    address.  The bridge establishes a connection to the native X.25 host
  46.    and simply shuffles TP0 packets between the two.
  47.  
  48. 1.  Introduction and Motivation
  49.  
  50.    The migratory protocol described in [RFC1006] makes possible the
  51.    transmission of TP0 packets between hosts on TCP/IP internets.  With
  52.    the addition of a small protocol converter, a TCP/IP host can be made
  53.    to appear in the X.25 addressing space and be able to accept and make
  54.    connections using the TP0 protocol.
  55.  
  56.  
  57.  
  58. Onions & Rose                                                   [Page 1]
  59.  
  60. RFC 1086          ISO-TP0 bridge between TCP and X.25      December 1988
  61.  
  62.  
  63.    This procedure is particularly useful in the following cases:
  64.  
  65.       1.  A host on an IP based internet can communicate with hosts on
  66.       X.25 based networks providing the hosts are running ISO protocols.
  67.       This also assumes a friendly gateway willing to run the actual TP0
  68.       bridge and make available to the IP host part of its X.25 address
  69.       space.
  70.  
  71.       2.  A site having sparse connections to an X.25 network and using
  72.       a TCP/IP based local area network for local communications.  In
  73.       this case all hosts on the LAN can have access to hosts on the
  74.       X.25 network running ISO TP0.
  75.  
  76.  
  77.    Pictorially, this memo describes interoperation in the following
  78.    environment:
  79.  
  80.           +---------------------------------+
  81.           |                                 |
  82.           |                   +-----------------------------------+
  83.           |  +----+           |     +----+  |           +----+    |
  84.           |  |    |           |     |    |  |           |    |    |
  85.           |  |    +-----------|-----+    +--------------+    |    |
  86.           |  |    |     TP0   |     |    |  |  TP0      |    |    |
  87.           |  +----+           |     +----+  |           +----+    |
  88.           | TCP Host          |  Bridge Host|         X.25 Host   |
  89.           |                   |             |                     |
  90.           |                   |             |                     |
  91.           |                   |             |                     |
  92.           +-------------------|-------------+                     |
  93.             TCP/IP Network    |                                   |
  94.                               |                                   |
  95.                               +-----------------------------------+
  96.                                            X.25 Network
  97.  
  98. 2.  Definitions and Philosophy
  99.  
  100.    Some modest terminology and philosophy is introduced to aid
  101.    readability and stir interest.
  102.  
  103.    The ISO Transport Service (TS) provides a reliable, packet-stream to
  104.    its users [ISO8072].  The ISO Transport Protocol (TP) implements this
  105.    service [ISO8073].  There are five classes of this protocol.  The
  106.    class is selected on the basis of the services offered by the
  107.    underlying network service.  Transport class 0 (TP0) is used when the
  108.    network service offered is connection-oriented and error-detecting.
  109.    As should be expected, TP0 is a rather simple protocol, since the
  110.    underlying network service actually provides most of the qualities
  111.  
  112.  
  113.  
  114. Onions & Rose                                                   [Page 2]
  115.  
  116. RFC 1086          ISO-TP0 bridge between TCP and X.25      December 1988
  117.  
  118.  
  119.    offered by the transport service.
  120.  
  121.    CCITT Recommendation X.25 [ISO8208,X.25] offers such a network
  122.    service.  It is beyond the scope of this memo to describe X.25 in any
  123.    detail, but two observations are pertinent:  First, X.25 is offered
  124.    as a wide-area network service by many commercial and (non-U.S.)
  125.    government carriers.  Second, the TP0/X.25 combination is very
  126.    popular in Europe and other communities with a strong PTT-oriented
  127.    market.
  128.  
  129.    It has been argued that the DoD Transmission Control Protocol (TCP)
  130.    [MIL1778, RFC793] can also be seen as providing a connection-oriented
  131.    and error-detecting network service.  This remark is controversial in
  132.    the sense that the TCP is actually an end-to-end transport protocol
  133.    and not a network protocol; the DoD Internet Protocol (IP) [MIL1777,
  134.    RFC791] is the network protocol in the DoD Protocol Suite.  However,
  135.    one of the advantages of layering is that, when properly architected,
  136.    it enhances flexibility.  This notion led to the development of
  137.    [RFC983] and its successor [RFC1006], which described how to provide
  138.    the ISO transport service on top of TCP/IP internetworks.
  139.  
  140. 3.  The Model
  141.  
  142.    The model is simple.  The method for transmitting TP0 packets using
  143.    TCP is defined in [RFC1006].  The method for transmitting TP0 packets
  144.    using X.25 is defined in [ISO8878].  The TP0 bridge merely has to
  145.    convert between the two forms.  As with most protocols, there are
  146.    three well-defined phases of interaction:  connection establishment,
  147.    data transfer, and connection release.  The method of operation for
  148.    the data transfer and connection release phases are quite similar
  149.    when using TP0 over either network service.  Hence the resulting
  150.    protocol mapping functions are quite simple.
  151.  
  152.    The difficult part is in managing connection establishment.  A small
  153.    "registration" protocol is used to aid the protocol mapping function
  154.    for the connection establishment phase.  The protocol performs one of
  155.    two operations: an X.25 address is specified for an outgoing call, or
  156.    an X.25 address is specified to accept incoming calls.
  157.  
  158.    This memo ignores the problems of authentication and authorization.
  159.    These areas are presumed to be a local matter.  It is worth pointing
  160.    out that running such a TP0 bridge with unrestricted access allows
  161.    any TCP/IP host to lay claim to part of the TP0 bridge host's X.25
  162.    address space.  This address space is limited and will not support
  163.    many foreign hosts registering listening addresses.
  164.  
  165.    The protocol makes no attempt to report errors other than those
  166.    transmitted by the TP0 protocol.  To attempt such additions would
  167.  
  168.  
  169.  
  170. Onions & Rose                                                   [Page 3]
  171.  
  172. RFC 1086          ISO-TP0 bridge between TCP and X.25      December 1988
  173.  
  174.  
  175.    require other mechanism such as a new protocol layer or equivalent.
  176.    The chosen model is kept as simple as possible with network errors
  177.    being ignored if recoverable, and resulting in disconnection
  178.    otherwise.  This actually enhances the transparency of the gateway,
  179.    in that the only gateway specific functions are collected together in
  180.    the connection phase.  The resultant circuit, once established, is
  181.    indistinguishable from an [RFC1006] implementation.
  182.  
  183. 4.  The Protocol
  184.  
  185.    The protocol is quite simple.  A successful connection establishment
  186.    phase results in two network connections being established.  TP0 is
  187.    used over each network connection, though one network connection is
  188.    provided by X.25 and the other by the TCP.
  189.  
  190.    During the data transfer phase, the TP0 bridge reads TPDUs (transport
  191.    protocol data units) from one network connection and writes them to
  192.    the other network connection.  During the connection release phase,
  193.    when one network indicates a disconnect, the bridge disconnects the
  194.    other network connection; or in the case of simultaneous network
  195.    disconnects, no action is taken by the bridge.
  196.  
  197.    As expected, the method of operation for the connection establishment
  198.    phase is more complex.  Connection establishment is driven by a
  199.    registration procedure which is initiated by a TCP/IP host initiating
  200.    a connection with the TP0 bridge.  This procedure takes on one of two
  201.    "flavors" depending on whether the initiating host wishes to
  202.    establish a connection to a particular X.25 address or listen for
  203.    connections on a particular X.25 address.
  204.  
  205.    The initiating host initiates the registration procedure by
  206.    establishing a connection to TCP port 146 on the TP0 bridge.  It then
  207.    sends one octet which indicates the flavor the registration procedure
  208.    will take:
  209.  
  210.           0 1 2 3 4 5 6 7
  211.          +-+-+-+-+-+-+-+-+
  212.          |   function    |
  213.          +-+-+-+-+-+-+-+-+
  214.  
  215.    The value of this octet is a binary-encoded value:
  216.  
  217.            value   meaning
  218.            -----   -------
  219.              0     illegal
  220.              1     connect to a particular X.25 host
  221.              2     listen for incoming X.25 connections
  222.            3-255   reserved
  223.  
  224.  
  225.  
  226. Onions & Rose                                                   [Page 4]
  227.  
  228. RFC 1086          ISO-TP0 bridge between TCP and X.25      December 1988
  229.  
  230.  
  231.    The method of operation for the registration procedure now diverges,
  232.    based on the function chosen.
  233.  
  234.    FUNCTION 1: CONNECTION THROUGH THE TP0 BRIDGE
  235.  
  236.       The X.25 address to call is now sent by the initiating host to the
  237.       TP0 bridge.  The format of an X.25 address is described in Section
  238.       5 of this memo.
  239.  
  240.       The TP0 bridge now attempts to call the specified address.  If
  241.       this succeeds, the connection establishment phase has succeeded
  242.       and the data transfer phase is begun.  If the call fails, then the
  243.       TP0 bridge closes the TCP connection.
  244.  
  245.    FUNCTION 2: ESTABLISHING A LISTENING ADDRESS
  246.  
  247.       The X.25 address, which should be a subaddress of the TP0 bridge's
  248.       X.25 address, on which to listen for incoming X.25 connections is
  249.       now sent by the initiating host to the TP0 bridge.
  250.  
  251.       Next, the initiating host sends an IP address and TCP port number
  252.       which will service incoming calls for the indicated X.25 address.
  253.       The format of a TCP/IP address is described in Section 6 of this
  254.       memo.
  255.  
  256.       The TP0 bridge now listens, on behalf of the initiating host, on
  257.       the indicated X.25 address.
  258.  
  259.       If an incoming call is received, a TCP connection is established
  260.       to the corresponding TCP/IP address.  If this connection is
  261.       successful, then the connection establishment phase has succeeded
  262.       and the data transfer phase is begun.  If the connection fails,
  263.       the incoming call is refused.
  264.  
  265.       The TCP/IP connection between the initiating host and the TP0
  266.       bridge is a "heartbeat" connection for the registration function.
  267.       If this connection closes, the TP0 bridge assumes hat the
  268.       listening function has been terminated by the initiating host, and
  269.       consequently, the TP0 bridge no longer listens for incoming calls
  270.       on the indicated X.25 address.  If such a facility were not
  271.       present, then the indicated X.25 address could not be recovered
  272.       for reuse.
  273.  
  274. 5.  Format of X.25 Addresses
  275.  
  276.    A standardized octet-encoding of X.25 addresses is used by the
  277.    protocol described in this memo.  The encoding has a fixed-length of
  278.    68 octets and contains 10 fields:
  279.  
  280.  
  281.  
  282. Onions & Rose                                                   [Page 5]
  283.  
  284. RFC 1086          ISO-TP0 bridge between TCP and X.25      December 1988
  285.  
  286.  
  287.     0                   1                   2                   3
  288.     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  289.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  290.    |        address  type          | X.121 address        ...      |
  291.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  292.    |      ...      |      ...      |      ...      |      ...      |
  293.    |      ...      |      ...      |      ...      |      ...      |
  294.    |      ...      |      ...      |      ...      |      ...      |
  295.    |      ...      |      ...      | X.121 length  | Protocol ID   |
  296.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  297.    |      ...      |      ...      |      ...      | PID length    |
  298.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  299.    | Call User Data field          |      ...      |      ...      |
  300.    |      ...      |      ...      |      ...      |      ...      |
  301.    |      ...      |      ...      |      ...      |      ...      |
  302.    |      ...      |      ...      |      ...      |      ...      |
  303.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  304.    | CUDF length   |  X.25 Facilities     ...      |      ...      |
  305.    |      ...      |      ...      |      ...      |Facility Length|
  306.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  307.  
  308.    The fields are:
  309.  
  310.    address type (2 octets) - a binary-encoded value in network order
  311.    indicating the address type. The value 3 is used for X.25 addressing
  312.    of this format.
  313.  
  314.    X.121 address (16 octets) - the ascii-encoded value of the X.121
  315.    address.
  316.  
  317.    address length (1 octet) - a binary-encoded value in network order
  318.    indicating how many octets of the X.121 address are meaningful.
  319.  
  320.    Protocol ID (4 octets) - meaningful at the remote system.
  321.  
  322.    Protocol ID length (1 octet) - a binary-encoded value indicating the
  323.    number of protocol ID octets are meaningful.
  324.  
  325.    User Data (16 octets) - meaningful at the remote system.
  326.  
  327.    User Data Length (1 octet) - a binary-encoded value indicating the
  328.    number of User Data octets are meaningful.
  329.  
  330.    X.25 Facilities (6 octets) - meaningful at the remote system.
  331.  
  332.    X.25 Facilities length (1 octet) - a binary-encoded value indicating
  333.    the number of Facility octets are meaningful.
  334.  
  335.  
  336.  
  337.  
  338. Onions & Rose                                                   [Page 6]
  339.  
  340. RFC 1086          ISO-TP0 bridge between TCP and X.25      December 1988
  341.  
  342.  
  343. 6.  Format of TCP/IP Addresses
  344.  
  345.    A standardized octet-encoding of TCP/IP addresses is used by the
  346.    protocol described in this memo.  The encoding has a fixed-length of
  347.    16 octets and contains 4 fields:
  348.  
  349.  
  350.     0                   1                   2                   3
  351.     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  352.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  353.    |         address  type         |           TCP  port           |
  354.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  355.    |                           IP address                          |
  356.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  357.    |    reserved   |      ...      |      ...      |      ...      |
  358.    |      ...      |      ...      |      ...      |      ...      |
  359.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  360.  
  361.    The fields are:
  362.  
  363.    address type (2 octets) - a binary-encoded value in network order.
  364.    The value 2 is used.
  365.  
  366.    TCP port (2 octets) - a binary-encoded value in network order.
  367.  
  368.    IP address (4 octets) - a binary-encoded value in network order.
  369.  
  370.    reserved (16 octets) - null-value padding.
  371.  
  372. Comments
  373.  
  374.    At present, the structure of the X.25 address and the internet
  375.    address are rather ad-hoc and specific to the UNIX operating system.
  376.    These structures may change in the future as experience is gained in
  377.    the use of the TP0 bridge.
  378.  
  379. References
  380.  
  381.      [ISO8072]  Information processing systems -- Open systems
  382.                 interconnection, "Transport Service Definition",
  383.                 International Standard, June, 1985.
  384.  
  385.      [ISO8073]  Information processing systems -- Open systems
  386.                 interconnection, "Transport Protocol Specification",
  387.                 International Standard, July, 1986.
  388.  
  389.      [ISO8208]  Information processing systems, "X.25 package level
  390.                 protocol for data terminal equipment", Draft
  391.  
  392.  
  393.  
  394. Onions & Rose                                                   [Page 7]
  395.  
  396. RFC 1086          ISO-TP0 bridge between TCP and X.25      December 1988
  397.  
  398.  
  399.                 International Standard, July, 1985.
  400.  
  401.      [ISO8878]  Information processing systems -- Data communications,
  402.                 Use of X.25 to provide the OSI connection-mode network
  403.                 service", Draft International Standard, January, 1987.
  404.  
  405.      [MIL1777]  Military Standard 1777, "Internet Protocol".
  406.  
  407.      [MIL1778]  Military Standard 1778, "Transmission Control Protocol".
  408.  
  409.      [RFC791]  Postel, J., "Internet Protocol - DARPA Internet Program
  410.                Protocol Specification", RFC 791, USC/ISI,
  411.                September 1981.
  412.  
  413.      [RFC793]  Postel, J., "Transmission Control Protocol - DARPA
  414.                Internet Program Protocol Specification", RFC 793,
  415.                USC/ISI, September 1981.
  416.  
  417.      [RFC983]  Cass, D., and M. Rose, "ISO Transport Services on Top
  418.                of the TCP", RFC 983, NTRC, April 1986.
  419.  
  420.      [RFC1006]  Rose, M., and D. Cass, "ISO Transport Service on Top
  421.                 of the TCP Version: 3", NTRC, May 1987.
  422.  
  423.      [X.25]  CCITT Recommendation X.25, "Interface Between Data
  424.              Terminal Equipment (DTE) and Data Circuit Terminating
  425.              Equipment (DCE) for Terminals Operating in the Packet
  426.              Mode on Public Data Networks," International Telegraph
  427.              and Telephone Consultative Committee Yellow book, Vol.
  428.              VIII.2, Geneva, 1981.
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Onions & Rose                                                   [Page 8]
  451.  
  452. RFC 1086          ISO-TP0 bridge between TCP and X.25      December 1988
  453.  
  454.  
  455. Authors' Addresses:
  456.  
  457.    Julian P. Onions
  458.    Computer Science Department
  459.    Nottingham University
  460.    University Park
  461.    Nottingham, NG7 2RD
  462.    United Kingdom
  463.  
  464.    EMail: JPO@CS.NOTT.AC.UK
  465.  
  466.    Marshall Rose
  467.    The Wollongong Group
  468.    1129 San Antonio Road
  469.    Palo Alto, CA 94303
  470.  
  471.    Phone: (415) 962-7100
  472.  
  473.    EMail: mrose@TWG.COM
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Onions & Rose                                                   [Page 9]
  507.